#include <stdio.h>
void main(void)
{
    // 有时需要一种数据结构，不同的场合表示不同的数据类型。
    // 比如，如果只用一种数据结构表示水果的“量”，
    // 这种结构就需要有时是整数（6个苹果），
    // 有时是浮点数
    union quantity
    {
        short count;
        float weight;
        float volume;
    };
    // union命令定义了一个包含三个属性的数据类型quantity。
    // 虽然包含三个属性，但是只能写入一个值，三个属性都是对这个值的不同解读。最后赋值的属性，往往就是可以取到有意义的值的那个属性
    union quantity q;
    q.count = 4;
    printf("count=%d\n", q.count);
    q.weight = 3.5;
    printf("weight=%f\n", q.weight);
    printf("count=%d\n", q.count); // 上面使用了weight属性，导致count属性的值被覆盖了

    // Union 结构的好处，主要是节省空间。它将一段内存空间，重用于不同类型的数据。定义了三个属性，但同一时间只用到一个，使用 Union 结构就可以节省另外两个属性的空间。
    // Union 结构占用的内存长度，等于它内部最长属性的长度
}